import { systemDict, systemAllDict } from '@/api/system'
import {
  getDictData, setDictData
  // removeDictData,
  // getDictDetailsData, setDictDetailsData
  // removeDictDetailsData
} from '@/utils/auth'
import moment from 'moment'

const state = {
  dictList: {},
  dictDetails: {},
  // dictList: JSON.parse(getDictData() || '{}'),
  // dictDetails: JSON.parse(getDictDetailsData() || '{}'),
  dictData: JSON.parse(getDictData() || '{}')
}

const mutations = {
  // SET_DICT_LIST: (state, data) => {
  //   const obj = {
  //     data: data || [],
  //     time: moment(new Date()).format('YYYY-MM-DD HH:mm')
  //   };
  //   state.dictList = { ...obj };
  //   setDictData(JSON.stringify(obj))
  // },
  // SET_DICT_DETAILS: (state, data) => {
  //   const obj = data || {}
  //   state.dictDetails = obj;
  //   setDictDetailsData(JSON.stringify(obj))
  // },
  SET_DICT: (state, data) => {
    console.log('state--SET_DICT--data==', data);
    const obj = {
      data: data || [],
      time: moment(new Date()).format('YYYY-MM-DD HH:mm')
    };
    state.dictData = { ...obj };
    console.log('getDictData()==', getDictData());
    setDictData(JSON.stringify(obj))
  }
}

const actions = {
  // 获取所有字典
  getAllDict({ commit }, data = {}) {
    return new Promise((resolve, reject) => {
      systemAllDict(data).then(res => {
        console.log('state--getAllDict--res==', res);
        const list = res?.data || [];
        commit('SET_DICT', list)
        resolve(data)
      }).catch(error => {
        reject(error)
      })
    })
  },
  // 获取指定字典
  // getDictList({ commit }, data = {}) {
  //   return new Promise((resolve, reject) => {
  //     systemDict(data).then(res => {
  //       const { data } = res
  //       const list = data?.list || [];
  //       commit('SET_DICT_LIST', list)
  //       resolve(list)
  //     }).catch(error => {
  //       reject(error)
  //     })
  //   })
  // },
  updateDictDetail({ state, commit }, { data = [], name = '' }) {
    console.log('updateDictDetail==', data, name);
    if (!name) return;
    // const dictDetails = state.dictDetails;
    // console.log('updateDictDetail--dictDetails==', dictDetails, data);

    // dictDetails[name] = {
    //   data: data || [],
    //   time: moment(new Date()).format('YYYY-MM-DD HH:mm')
    // };
    // commit('SET_DICT_DETAILS', dictDetails)
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
